package com.jl15988.chainlog.annotation;

import java.lang.annotation.*;

/**
 * Controller级别监控注解
 * 用于定义整个Controller下所有接口监控的module和默认配置
 * 
 * @author Jalon
 * @since 2025/9/29
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ChainController {

    /**
     * 模块名称 - 应用于该Controller下的所有接口
     */
    String module();

    /**
     * 默认操作类型 - 可被方法级别的@ChainApi覆盖
     */
    String operationType() default "";

    /**
     * 默认备注信息 - 可被方法级别的@ChainApi覆盖
     */
    String desc() default "";

    /**
     * 默认自定义参数 - 会与方法级别的@ChainApi自定义参数合并
     */
    ChainCustom[] customs() default {};

    /**
     * 是否启用该Controller的监控
     */
    boolean enabled() default true;
}